package com.dingding.manager.modules.system.dao;

import java.util.List;

import com.dingding.manager.common.beans.sys.SysRole;
import com.dingding.manager.common.beans.sys.SysRoleMenu;
import com.dingding.manager.common.dao.Page;
import com.dingding.manager.modules.system.dto.role.ReqRoleListDTO;
import com.dingding.manager.modules.system.dto.role.ResRoleDTO;

/**
 * 
* @ClassName: RoleDao 
* @Description: 角色管理dao
* @author SUNZHICHENG 
* @date 2016年12月1日 下午1:52:01 
* @version V2.6.2
 */
public interface RoleDao {
	
	/**
	 * @Description: 根据角色id查询角色信息        
	 * @date 2016年12月1日 下午2:40:57
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	
	public ResRoleDTO getRoleById(Integer roleId);
	

	/**
	 * @Description: 根据用户名查询角色信息
	 * @param name   用户名    
	 * @date 2016年12月2日 下午10:44:29
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public List<SysRole> getRoleByName(String name);
	
	
	/**
	 * 
	 * @Description: 查询所有角色列表        
	 * @date 2016年12月5日 下午1:56:23
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public List<SysRole> getRoleList();
	
	
	/**
	 * @Description: 查询角色列表（或按条件）   
	 * @date 2016年12月6日 下午4:23:21
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public Page<ResRoleDTO> getRoleList(ReqRoleListDTO reqRoleListDTO,Integer start, Integer length);
	
	
	/**
	 * @Description: 删除角色
	 * @param roleId  角色id      
	 * @date 2016年12月1日 下午2:54:03
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public boolean deleteRole(Integer roleId);
	
	
	/**
	 * @Description: 修改角色是否可用状态        
	 * @date 2016年12月1日 下午2:49:25
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	
	public boolean modifyRoleState(Integer roleId,Integer state);
	
	/**
	 * @Description: 添加角色、修改
	 * @date 2016年12月7日 下午10:15:02
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public boolean addRole(SysRole role);
	
	/**
	 * @Description:根据角色名获取角色 
	 * @date 2016年12月9日 上午9:45:36
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public List<SysRole> getRolesByName(String roleEnName,String roleName);
	
	/**
	 * @Description: 根据角色id查询角色菜单关联数据
	 * @date 2016年12月9日 上午10:51:13
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public List<SysRoleMenu> getRoleMenu(Integer sysRoleId);
	
	/**
	 * @Description: 根据角色id删除角色菜单关联
	 * @date 2016年12月9日 上午11:10:44
	 * @author SUNZHICHENG 
	 * @since V2.6.2
	 */
	public void deleteRoleMenu(Integer sysRoleId);
	
	/**
	 * @Description: 添加  角色菜单关联      
	 * @date 2016年12月9日 上午11:23:27
	 * @author SUNZH2.6.2
	 */
	public void addRoleMenu(SysRoleMenu sysRoleMenu);
	
}
